Systems and methods for generating musical tempo gridlines on an electronic drum module display

ABSTRACT

An electronic-drum module for connection to one or more electronic-drum pads is provided. The module includes an electronic display, a memory storing audio files for playback when the playback is triggered by a signal received from a pad, and one or more processors coupled to the electronic display and the memory. The processors are configured to play a portion of the audio files when the playback is triggered by the signal received from the one or more electronic-drum pads. The processors are also configured to display, on the display, a user interface for an application, which includes a waveform associated with recorded audio. The processors are also configured to display, on the display, tempo gridlines with a tempo-gridline spacing over the waveform. The module includes a control for adjusting the tempo-gridline spacing. The control is a wheel and is actuated by a rotation of the wheel.

PRIORITY CLAIM

This application is a national stage application under 35 U.S.C. § 371of international application number PCT/US2018/014590, filed Jan. 20,2018, which designated the U.S. and claims priority under 35 U.S.C. §119 to U.S. Provisional Patent Application No. 62/448,354, which wasfiled on Jan. 19, 2017, and are incorporated herein by reference intheir entirety.

TECHNICAL FIELD

The present disclosure relates generally to systems and methods forgenerating musical tempo gridlines on an electronic drum module display.

BACKGROUND

Musicians use electronic percussion instruments (e.g., electronic drums)to create one or more sounds or sound data by generating an electricalsignal. The electrical-signal generation may be initiated by, forexample, striking a playing surface, such as a drum-head surface. Thedrum-head surface may be coupled to an electromechanical transducer thatgenerates electrical signals in response to vibrations, and thiselectromechanical transducer may, upon sensing vibrations effectuated bythe strike, generate a corresponding electrical signal. The signal maybe transmitted to an external system (e.g., an electronic-drum module)for processing. Such processing may comprise analyzing the electricalsignal to determine details about the sound to be played or generated.The processing may comprise, for example, determining what sound-sampleshould be played back upon detecting an electrical signal, at what timeto play the sound-sample and/or with what volume, when to end playbackof the sound sample, etc. Once analyzed, the electrical signal may beused to generate sound or sound data consistent with the analysis or toplayback a prerecorded sound consistent with the analysis. Some of thisanalysis, generation, and/or playback may depend on user selections orother settings on the electronic-drum module. For example, a user maymake various selections on an electronic-drum module connected to atransducer within an electronic snare drum-pad. The user may select a“car-effects” drum-kit on the module and select a “large-hall”reverberation setting. In this example, if the user gently taps theelectronic snare drum's drum-head, the electrical signal produced by thetransducer may trigger the module to generate or play an analog audiosignal of a car horn at a quiet volume, within a fixed period after theuser's strike, and reverberating for a long time. Because the userselected a “car-effects” drum-kit on the module, the module will produceanalog sound signals of car effects when it receives triggering signalsfrom electronic drum pads connected thereto.

The disclosed systems and methods are directed to overcoming one or moreof the problems set forth above and/or other problems or shortcomings inthe prior art.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of this specification, illustrate the disclosed embodiments and,together with the description, serve to explain the principles of thevarious aspects of the disclosed embodiments. In the drawings:

FIG. 1 illustrates an exemplary electronic-drum module;

FIG. 2 illustrates a side view of the exemplary electronic-drum module;

FIG. 3 illustrates another side view of the exemplary electronic-drummodule;

FIG. 4 illustrates an exemplary kit;

FIG. 5 illustrates an exemplary kit display;

FIG. 6 illustrates an exemplary kit image;

FIGS. 7A-7C illustrate exemplary displays;

FIG. 8 illustrates another exemplary display;

FIGS. 9A and 9B are a flow diagram illustrating an exemplary method;

FIG. 10 illustrates another exemplary display;

FIGS. 11A and 11B illustrate another exemplary display;

FIGS. 12A and 12B illustrate another exemplary display;

FIG. 13 illustrates another exemplary display;

FIG. 14 illustrates an exemplary system;

FIG. 15 illustrates another exemplary display;

FIG. 16 illustrates another exemplary display;

FIGS. 17-19 illustrate exemplary more views of the electronic-drummodule; and

FIG. 20 illustrates an exemplary folder-selection view.

It is to be understood that both the foregoing general descriptions andthe following detailed descriptions are exemplary and explanatory onlyand are not restrictive of the claims.

DESCRIPTION OF EXEMPLARY EMBODIMENTS

Many electronic drum pads may be connected to a single module at once.In this case, a drum kit selected on the module and other user settingson the module will dictate what sound signals will be generated orplayed in response to triggers from the respective electronic drum pads.In a “car effects” example, an electrical signal from the snare drum maytrigger the module to generate an audio signal of car horn, whereas anelectrical signal from the crash cymbal may trigger the module togenerate an audio signal of a car crash. The selection of a particulardrum kit may result in very different sounds being generated when themodule is triggered by strikes on different drum pads. In someembodiments, the module may also generate only slightly different soundswhen the module is triggered by the same drum pad. For example, if auser strikes the center of a drum-pad head, the amplitude of thevibrations, the frequency of the vibrations, and/or the frequency ofvibration-amplitude peaks picked up by a transducer may be larger thanif the user struck the edge of a drum-head. This may be the case if thetransducer is in contact with the drum-head at its center rather thanits edge. With such a hit on the center of the drum-head, the electricalsignal produced may be high (e.g., high DC-voltage, high amplitudeAC-voltage, etc.). The high electrical signal may indicate to the modulethat the audio signal generated or played should be of a loud sound.Alternatively, if the user strikes the edge of the drum-head and theelectrical signal produced is low (e.g., low DC-voltage, low amplitudeAC-voltage, etc.), the module may generate an audio signal of a quietsound. Therefore, different types of strikes on the drum-head requirethe generation of different audio signals.

The audio signals, rather than being generated by the module, mayinstead be playbacks of prerecorded audio files (e.g., “samples”). Thismay alleviate the module from the processor-intensive task ofsynthesizing audio signals. In such case, a selected drum kit maycomprise audio files. In some embodiments, a selected drum kit maycomprise audio files and/or data instructing the system how to playbackaudio files (e.g., audio parameters specifying what effects orprocessing to perform on audio files before they are played back). Sincedifferent types of strikes on the drum-head require the playback ofdifferent audio files, it is advantageous for the module to have accessto many different files for a given drum kit. Even if two drum-strikeson the same electronic-drum's drumhead produce identical or nearlyidentical electrical signals for triggering the module, the module maystill play back two slightly different audio files in order to replicatetwo realistic, human-initiated drum strikes. Doing so may be especiallyadvantageous when trying to replicate the sound of an acoustic drum-kitwith an electronic drum and external module. The human ear is sensitiveto the fact that a human cannot strike an acoustic drum twice with theexact same force; two strikes of an acoustic drum must create twodifferent sounds, no matter how minute the difference. Playing back theexact same audio file for multiple electronic-drum strikes (e.g., infast succession), may be perceived as computer-generated and lacking thenatural imperfection inherent in a human acoustic-instrumentperformance. Therefore, it is desirable to maximize the number of audiofiles the user may access through the module and to have a system fornavigating and selecting the drum kits and the audio files therein. Itis further desirable for such system to comprise a display on whichinformation, menus, selections, and parameters may be viewed by the userwhile interacting with the system. Such system and display may betailored the requirements of drummers, who may perform in environmentswith many distractions and with poor lighting conditions.

The disclosed systems and methods are directed to overcoming one or moreof the problems set forth above and/or other problems or shortcomings inthe prior art.

Reference will now be made to certain embodiments consistent with thepresent disclosure, examples of which are illustrated in theaccompanying drawings. Wherever possible, the same reference numberswill be used throughout the drawings to refer to same or like parts.

The present disclosure describes systems and methods for generatingmusical tempo gridlines on an electronic drum module display.

FIG. 1 shows one illustrative embodiment of an electronic-drum module at100 (i.e., module 100). Module 100 may include a display 101. Display101 may show information relevant to module's 100 current operation.Display 101 may be full-color, monochromatic, or greyscale. Display 101may be a multi-touch display. In certain embodiments, module 100 mayrecognize touch gestures performed on display 101. Display 101 and/orother hardware controls may be used to control module 100. Otherhardware controls, such as, for example, buttons, knobs, wheels, orfaders may be used to make selection from display 101. For example, incertain embodiments, and enter-button 105 may be pressed to select ahighlighted element or parameter shown on display 101. A cursor buttonfrom the plurality of cursor-buttons 104 may be used to adjust whichelement or parameter is highlighted. A wheel 103 may be used to adjust aselected element or parameter. For example, rotating wheel 103counter-clockwise may decrease a parameter's value and rotating wheel103 clockwise may increase a parameter's value. In certain embodiments,wheel 103 may be pressed to select a highlighted element or parametershown on display 101. Use of wheel 103, in certain embodiments, mayfacilitate faster and more intuitive selections or other operationswithin module's 100 user interface than, for example, a keyboard andmouse often used with desktop or laptop computers. Use of wheel 103 mayfacilitate faster and more intuitive use by musicians in high-energyperformance settings that may, in some circumstances, have poor lightingconditions. A standard computer keyboard's layout may have many buttonsthat are small compared to the size of the wheel. Wheel 103 may have aninternal resistance built in (e.g., friction) such that rotating wheel103 requires an application of force. The internal resistance may bebuilt in so the chance of accidental rotation is reduced. The standardcomputer mouse, which operates largely in vertical and horizontalmotions, may offer little resistance to accidental movement.

A plurality of electronic drum pads may be connected to module 100. Forexample, electronic drum pads may be connected using one-quarter-inchtip-ring-sleeve cables to a plurality of exemplary pad-input jacks 204,shown in a first exemplary side-view of module 100 illustrated in FIG.2. In some embodiments, input jacks 204 may be combined into one or morejacks for receiving one or more plugs (e.g., a 37-pin D-Sub connector,or “DB37” connector). Electronic drum pads, as referred to herein, mayinclude at least one of electronic drum pads, cymbal pads, or high-hatpads. In certain embodiments, one or more tip-ring-sleeve cables maycarry strike signals from multiple zones of a drum pad. For example, atip-ring-sleeve cable may carry a rim-strike signal, a center-strikesignal, and a ground connection from a snare-drum pad. In an embodiment,a tip-ring-sleeve cable may carry a bow-strike signal and anedge-contact signal. The strike and contact signals may be referred toas “triggers” and may indicate, among other things, the time at which aparticular sound or sounds should and/or should not be played and thevolume at which the sound or sounds should be played (e.g., thevelocity). One or more drum pads may have at least one sensor thatsenses when a user strikes the drum in a particular area or, in the caseof a cymbal, grabs the cymbal's edge or, in the case of a high-hat,closes the high-hat. The area of the drum most directly coupled to agiven sensor may be referred to as a zone. For example, a snare drum padmay have a sensor near the rim and a sensor near the center, creating arim zone and a center zone. When module 100 receives a strike signalfrom a particular zone's sensor, such as through pad-input jacks 204,module 100 may generate and/or play a sound. With reference to the firstexemplary side-view of module 100 illustrated in FIG. 2, the sound maybe outputted through output-jacks 207, main-output jacks 206, USB-jack210, and/or MIDI-OUT jack 209, and/or through exemplary headphone-jack310 shown in the second exemplary side-view of module 100 illustrated inFIG. 3. The output through one or more output jacks of output-jacks 207of FIG. 2 may be individually controlled using output-faders 111,illustrated in FIG. 1, or may be fixed. One or more fader ofoutput-faders 111 may control the volume output of at least one soundthrough at least one jack of main-output jacks 206 of FIG. 2. Forexample, the left-most fader of output-faders 111 of FIG. 1 may by slidup or down to increase or decrease the volume, respectively, of thesound signal output through main-output jacks 206 of FIG. 2.Output-faders 111 may be slide potentiometers. Main-volume knob 107 ofFIG. 1 may be rotated counter-clockwise and clockwise to decrease orincrease the volume of the sound signal outputted through main-outputjacks 206 of FIG. 2. The sound signal outputted through main-outputjacks 206 may be a mixed signal or signals of sounds triggered with drumpads.

When module 100 receives a trigger from a drum pad, module 100 mayaccess a sound stored internally or externally in a kit data structure(i.e., kit) or generated according to information in a kit. In certainembodiments, a user may specify a kit from which to select sounds forplayback when the user strikes one or more drum pads. An exemplary kit400 is illustrated in FIG. 4. Kit 400 may be a data structure comprisingother data structures. Kit 400 may comprise one or more voices such asexemplary voice 410. Voice 410 may be assigned or associated with a zonein a drum pad. Voice 410 may comprise one or more layer, such asexemplary layers 420 a and 420 b. Layers 420 a and 420 b may compriseone or more instruments, such as exemplary instruments 430 a and 430 b,respectively. An instrument may comprise data for generating one or moresounds or for playing one or more pre-recorded samples (i.e., samples).Layer 420 a may comprise one or more instruments and one or moresamples, such as exemplary samples 440 a, 440 b, 440 c, and 440 d. Sincevoice 410 may comprise a plurality of layers, such as layers 420 a and420 b, striking a single zone in a drum pad may signal module 100 tooutput a plurality of sounds. Similarly, since instruments 430 a and 430b may comprise more than one sample, more than one sample may be playedsimultaneously with every trigger associated with the voice and/orplayed in succession with every subsequent trigger received. Forexample, striking a snare-drum center zone five times may result in fivedifferent samples being played one after the other or may result in fivesamples being played simultaneously. Playing the different samples oneafter the other may be done to simulate the imperfections inherent in ahuman acoustic-instrument performance. The simulation may be achievedby, for example, making at least some of the samples (e.g., such assamples associated with a particular strike velocity) slightly differentfrom one another. These slight differences may include slightfluctuations in volume, tonal quality, phase, attack, decay, sustain,release, etc., between two or more strikes.

A user may select which sample should be outputted when a particularzone in a particular drum pad is struck. In certain embodiments, theuser may do so by, among other things, selecting a kit, selecting one ormore instruments for one or more layers, and selecting one or moresounds or samples for the one or more selected instruments. For example,a user may press kit-button 106 of FIG. 1 and be displayed a list ofavailable kits, such in exemplary kit-display 500 illustrated in FIG. 5.A user may scroll the highlighted selection bar 510 through a list ofavailable kits 520 using, for example, wheel 103 of FIG. 1. As the userhighlights a particular kit, an image of the highlighted kit, such asexemplary kit-image 530 of FIG. 5, may be shown on display 101 ofFIG. 1. In some embodiments, a user may select a folder instead of or inaddition to a drum kit. FIG. 20 illustrates an exemplaryfolder-selection view that may be displayed on display 101. An exemplaryfolder 2002 may be selected and a list of drum kits in the folder, suchas exemplary drum kit 2004, may be displayed. In some embodiments, animage of a highlighted kit may be displayed even when the kit is locatedwithin a selected folder. Kit-image 530 of FIG. 5 may provide sufficientdetail to distinguish the highlighted kit from other available kits. Forexample, providing sufficient detail may comprise displaying the drumkit such that a user may discern at least one of the relative size ofdrums in the drum kit, the number and/or types of cymbals available inthe drum kit, the number and/or types of drums available in the drumkit, the type of wood the drum kit is made from, or the relativeposition of drums and cymbals within the drum kit. This stands incontrast to exemplary kit-image 600 illustrated in FIG. 6, which maylack sufficient detail to distinguish it from other kits. Displaying kitimage 530 may aid a user in quickly identifying a highlighted kit anddetermine whether to select the kit based on its visualized appearancebecause it has sufficient detail to distinguish it from other kits. Thismay be advantageous to a musician trying to select a kit whileperforming in a fast-paced, high-energy setting with, in some cases,poor lighting conditions, rendering reading difficult. This may beadvantageous if the musician is a drummer and moving their head whilepressing a bass-drum or high-hat pedal or striking a drum and attemptingto select a kit. Kit image 530 may be a custom image created or providedby the user. The user may select a highlighted kit by, for example,pressing enter-button 105 of FIG. 1. The user may highlight a particulartrigger-source to which a sound is to be assigned, such as exemplarytrigger-source 540 of FIG. 5, by, for example, pressing one or morecursor buttons of cursor-buttons 104 of FIG. 1 until the desiredtrigger-source is highlighted. The user may select the highlightedtrigger-source by, for example, pressing enter-button 105. In certainembodiments, in addition to or instead of selecting a highlightedtrigger-source by, for example, pressing enter-button 105, a user mayselect a trigger-source by striking the drum zone coupled to the sensorto which the user wants to assign a sound or edit the sounds assignedthereto. The highlighting and/or selection of the kit may be performedby wheel 103 or other controls on module 100. Doing so with wheel 103 orother controls on module 100 may be more convenient than with a computerkeyboard because standard computer keyboard's layout may have relativelymany buttons that are small compared to the size of wheel 103 or othercontrols on module 100. Adjusting the highlighting or selection withwheel 103 rather than a computer mouse may be more convenient for amusician because the standard computer mouse, which operates largely invertical and horizontal motions, may offer little resistance toaccidental movement, whereas wheel 103 may have an internal resistancebuilt in (e.g., friction) such that rotating wheel 103 requires anapplication of enough force so that the chance of accidental rotation isreduced. Use of wheel 103 may facilitate faster and more intuitive useby musicians in high-energy performance settings that may, in somecircumstances, have poor lighting conditions that make it hard to read akeyboard or find a mouse. Allowing a user to have electronic-drum padsconnected to the unit on which the drum kit will be selected, such asmodule 100, may allow the user to select the drum kit and starttriggering it with the electronic-drum pads in less time and in fewersteps than if the user were required to first select the drum kit on acomputer and then transfer the selection to the unit that will beconnected to the electronic-drum pads. Facilitating the selection of thedrum kit on module 100 instead of on a computer may decrease the numberof devices needed by a musician, reducing transportation, storage, andcapital investment expenses in equipment. For example, module 100 may bea single self-contained unit, whereas a computer system for selectingthe drum kit may comprise multiple units (e.g., computer case, displaymonitor, keyboard, mouse, and/or speakers). If a computer system forselecting a drum kit is used, data of the selection may then need to betransferred to a module for, among other things, interfacing with theelectronic-drum pads, which may require two pieces of equipment (e.g.,the computer system and module), extra time and, potentially, systemresources to transfer data of the selection.

Display 101 of FIG. 1 may present the user with various displays forselecting and editing the sounds associated with the selectedtrigger-source, such as exemplary displays illustrated in FIGS. 7A, 7B,and 7C. The user may use one or more of cursor-buttons 104, enter-button105, or wheel 103 of FIG. 1 to highlight and select the instrument for aparticular layer, such as instrument 710 of FIG. 7C in Layer-B 720. Theuser may rotate wheel 103 of FIG. 1 to scroll through availableinstruments. In an exemplary embodiment, display 101 may present theuser with exemplary display 800, illustrated in FIG. 8, for selecting aninstrument 810 and associating it with layer 820.

When a user scrolls through available instruments for a particular layeror through a list of kits, the user may hear what sounds would be playedif the instrument displayed or kit highlighted were selected and adrum-pad's zone struck (e.g., to audition the kit or instrument). To dothis, the user may scroll to a kit or instrument and strike a drum-padzone before making the selection. In certain embodiments, merelyscrolling to the kit is sufficient to select it. Even in this case, theuser may want to strike a pad to hear which kit they have selectedbefore starting a performance or playing a song. Data pertaining to oneor more kits may be stored on memory that can transfer data to aprocessor quickly (e.g., RAM and/or Flash memory) relative to othertypes of memory (e.g., SD Card, USB drive, hard disk, and/or solid statedrive). The former memory may be referred to as “fast memory” and thelatter as “slow memory.” Because a kit may comprise numerous samples,and because samples may be audio files of varying sizes, data pertainingto the kit may take up a lot of memory. In certain embodiments, kitswith more samples may take up more memory. Because fast memory may bemore expensive per unit of storage than slow memory, some portion offast memory may be allocated to hold data pertaining to a currentlyselected drum kit rather than data pertaining to all kits. The datapertaining to multiple kits may be stored on slow memory, such as an SDCard, and, upon selection of a particular kit, the selected kit may betransferred to a fast memory, such as RAM. Doing so may create one ormore advantages particular to the functionality of electronic-drummodules. For example, if a portion of the module's RAM is used to storeonly the selected kit instead of multiple kits, more RAM memory isavailable for storing the selected kit. This allows each individual kittake up more memory than would be possible if more than the selected kitwas stored in the portion of the module's RAM because the portion wouldbe shared between the selected kit and other data or kits. Allowing eachindividual kit to take up more memory allows kits to comprise moreand/or better quality samples. More samples in a single kit may beadvantageous because using more samples may facilitate simulating morerealistically the inherent imperfections of a human acoustic-instrumentperformance. The simulation may be achieved by, for example, making atleast some of the samples (e.g., such as samples associated with aparticular strike velocity) slightly different from one another. Theseslight differences may include slight fluctuations in volume, tonalquality, phase, attack, decay, sustain, release, etc., for between twoor more strikes. More samples per kit may also be advantageous becauseit may allow for samples for more strike velocities (e.g., volumes) tobe stored in a single kit. For example, the kit may contain samplescovering 256 strike velocities rather than 128 strike velocities.Samples of better quality (e.g., those recorded with a higher samplerate and/or with a higher bit-depth) may be advantageous because theymay facilitate a better audio-quality performance. Another advantage ofstoring data pertaining to multiple kits in slow memory and transferringselected kit data to a fast memory is the ability to use large kit filesin light of a microprocessor's or digital signal processor's inabilityto recognize an amount of fast memory (e.g., RAM) necessary to storemultiple large kit files in fast memory. Storing unused kit files inslow memory allows kit files to remain large.

Because transferring data pertaining to a selected kit between slowmemory and fast memory takes time, owing in part to the slow nature ofslow memory, data pertaining to a selected kit may be transferred in anorder that minimizes the impact of the time-delay needed to make thetransfer on the user's experience. For example, there may be priorityinstructions associated with one or more kits that instruct theprocessor to transfer one or more samples within a selected kit in theorder in which they are likely to be used. For example, the sample thatis more likely to be used first will be transferred first. This way, auser may not notice the delay because at least some of the samples aretransferred by the time they are needed. In certain embodiments, whereone or more samples produce very similar sounds but with slightvariations (e.g., to simulate two successive hits by a human on anacoustic drum), only one or less than all such samples may be loadedbefore other samples. Such methods of transfer may improve thefunctionality of the aforementioned system for storing kits on slowermemory and a selected kit in faster memory and the functionality of suchsystem in the context of electronic-drum modules, owing in part to theuse of samples in this context to realistically simulate the inherentimperfections of a human acoustic-instrument performance. The datapertaining to the selected kit may be transferred by storing instructiondata associated with one or more kits that indicates what order totransfer the data in. The instruction data may comprise instructions tofirst transfer samples for a few most-used velocities for a givenpad-zone rather than transfer all velocities for the pad-zone. Forexample, the instruction data may comprise instructions to firsttransfer a medium-volume sample for a snare drum and then transfer alow-volume and a high-volume sample. These instructions may be specificto a particular kit, such a Cocktail Jazz Kit. The instructions for aparticular kit may be created based on the mostly likely use-case forthat particular kit. For example, a user interested in the Jazz Kit maybe expected to initially strike the drum pads with a medium force, asopposed to a user of a Heavy Metal kit who may be expected to initiallystrike the drum pads with a high force. In such example, because of theexpected use-case for the kit, the Heavy Metal Kit may be stored withinstructions to first load high-volume samples and then load low- andmedium-volume samples. In certain embodiments, the instruction data maycomprise instructions to first transfer samples pertaining to a fewmost-used pad-zones for a given kit rather than transfer all samples forall pad-zones for a given kit. For example, instruction data specific toa Dance/Techno Kit may instruct the system to first transfer bass-drumsamples rather than snare-rim samples because a user interested in aDance/Techno Kit may be expected to most likely strike the bass drumbefore the snare rim. In some embodiments, the most-used pad-zones maybe determined by an association between a kit and a musical artist knownfor having a distinct sound when striking a particular drum. In certainembodiments, a set of instructions may pertain to more than one kit,such as kits for a particular genre of music. In certain embodiments, aset of instructions may pertain to all kits. In some embodiments, theinstructions may be stored on a memory separate from that storing thekits data. The aforementioned methods of transferring samples may beperformed on module 100 and/or on a general-purpose computer.

FIGS. 9A and 9B are a flow diagram illustrating an exemplary method 900consistent with embodiments of the present disclosure. At step 902, auser may select a drum kit. Such selection may be made on module 100. Incertain embodiments, the selection may be made using a device externalto module 100. At step 904, a voice engine, such as a voice engineimplemented on DSP CPU 1220, may stop playback of a samples associatedwith a currently loaded kit. This may occur because there isinsufficient processing capacity to continue playback of sampleassociated with a currently loaded kit. In certain embodiments, such aswhen DSP CPU 1220 supports multiple voice engines, it may be unnecessaryto stop playback of samples associated with a currently loaded kit. Insuch case, step 904 may be skipped. At step 906, the system may checkwhether representative samples and/or file headers for representativesamples for the selected kit are available for loading into a fastmemory. Such fast memory may be cache memory within DSP CPU 1220 and/oranother portion of fast memory. In certain embodiments, the fast memorymay be external to DSP CPU 1220. A file header for a sample, instrument,or kit may contain information pertaining to the sample, instrument, orkit. For example, the file header may specify how many strike force orvelocity levels a given instrument has, where in memory particularsamples may be located, the filenames of particular samples,priority-instructions indicating the order in which to transfer samplesand/or how many different samples are assigned to the same strike forceof velocity level for a given instrument. If representative samplesand/or file headers for representative samples for the selected kit areavailable for loading into a fast memory, the representative samples maybe loaded into the fast memory at step 908. In certain embodiments, thesystem may not check whether representative samples and/or file headersfor representative samples for the selected kit are available forloading into fast memory. In such case, step 908 may be skipped. At step910, the file header or headers for the selected kit may be transferredfrom slow memory to fast memory such as the cache within DSP CPU 1220.At step 912, the system may determine whether the samples from theinstruments specified by the selected kit are already loaded into fastmemory. Such determination may be made by, for example, readingidentifiers for the instruments and/or samples from the file header orheaders for the selected kit. If the samples from the instrumentsspecified by the selected kit are already loaded into fast memory, atstep 914, the system may keep the samples in fast memory and proceed toinforming the processor, at step 918, that a new kit (e.g., parametersfor sample playback such as tuning, envelope characteristics, effects,etc.) is ready for loading into fast memory. If at step 912 the systemdetermines that some samples for the selected kit are not yet loaded,the system may allocate memory for the samples and/or parameters not yetloaded in a fast memory at step 916. In certain embodiments, the systemmay load samples regardless of whether they were already loaded. It isto be understood that, in some embodiments, cache and fast memory may beused or allocated interchangeably. In some embodiments the system mayload none, some, or all samples to cache memory. In some embodiments,the system may load none, some, or all samples to another type orsection of fast memory. For example, a header file or sound for a kitmay be pre-loaded into cache or another portion of fast memory as a userscrolls through a list of kits and deleted if a user moves to anotherkit in their scrolling. Doing so may decrease the time necessary to loada full kit when selected. The system may then inform, at step 918, theprocessor that a new kit (e.g., parameters for sample playback) is readyfor loading into fast memory.

FIG. 9B illustrates the continuation of exemplary method 900 consistentwith embodiments of the present disclosure. At step 920, ifrepresentative samples were not yet loaded into a fast memory at step908, the system may determine which samples to load as representativesamples for the instruments associated with the selected kit. Thisdetermination may be made by, for example, referencing the file headeror headers associated with the selected kit or the one or moreinstruments associated with the kit. The file header or headers mayindicate which samples are the representative samples for the instrumentbeing loaded. At step 922, the identified representative samples aretransferred to fast memory. At step 924, the transferred representativesamples are assigned to play when one or more drum pads is struck at oneor more levels of force or velocity. For example, a representativesample for a snare drum may be assigned such that it is played when thesnare drum-pad is struck with any velocity. In certain embodiments, twoor more representative samples may be assigned, such as a low-forcesample and a high-force sample to be played if the snare drum-pad isstruck lightly or forcefully, respectively. In certain embodiments, twoor more representative samples may be assigned such that the systemplays them alternatingly when a particular drum pad is struck at one ormore force or velocity levels. In certain embodiments, thenon-representative samples may be loaded according to a particularpriority. The priority is determined at step 926. The priority may bespecified in the file header or headers associated with the instrumentassociated with the samples or the selected drum kit. The specificationmay be in the form of an instruction. In certain embodiments, the samepriority may be specified for some or all drum kits. In someembodiments, a user may set this priority for drum kits pre-loaded onmodule 100 and/or for drum kits the user creates. At step 928, thenon-representative samples begin being transferred to fast memory. Atstep 930, the non-representative samples may be assigned to drum padsand triggered by a user as soon as they are in the fast memory. Incertain embodiments, the non-representative samples for a particulardrum pad may be triggered after all non-representative samples for thedrum pad are transferred. The non-representative samples may be assignedinstead of the representative samples once the former are loaded intofast memory. At step 932, the system may check whether sample-loading iscomplete. If not, at step 934, the system may monitor for a drum padbeing struck. Upon detecting a strike during sample loading, the systemmay, at step 936, increase the priority of the samples associated withthe instrument associated with the struck drum pad. For example, thepriority of the struck drum pad's samples may be set such that thesesamples are transferred first. If no pad was struck during loading sincethe check at step 934 was last completed, the sample-loading continueswithout modifying the priority. In certain embodiments, the system maytransfer samples associated with a middle-level strike force or velocityfor a particular drum pad and continue by transferring samplesassociated with increasingly higher-level strike force or velocity anddecreasingly lower-lever strike force or velocity. In certainembodiments, another order of transferring samples may be used. Allsamples associated with a particular drum pad and a particular strikeforce or velocity may be transferred first or, in certain embodiments,one or more samples for one or more strike forces or velocity levels maybe transferred before transferring other samples associated with one ormore strike forces or velocity levels. If sample-transferring isdetermined to be complete at step 2636, method 2600 may end.

A user may press a record button, such as exemplary record-button 123illustrated in FIG. 1, to initiate a process for recording a sample. Auser may connect an external audio source to module 100 via, forexample, exemplary Aux-In jack 205 illustrated in FIG. 2. Audiotransmitted from the audio source may be recorded by module 100 andassigned as a sample to an instrument in kit 400 of FIG. 4. Whilerecording, the user may be presented with an exemplary display 1000 andinput-level monitoring meters 1010 a and 1010 b illustrated in FIG. 10.The user be presented with exemplary display 1100 a, illustrated in FIG.11A, to edit a recorded sample. Exemplary display 1100 a may include awaveform representation of the recorded sample's audio signal, such asexemplary waveform representation 1110. The user may adjust the starttime and stop time of the portion of the recorded sound to be playedback within the sample. The start time and stop time may be set byadjusting the positions of locators 1120 a and/or 1120 b. For example,the position of locator 1120 a may indicate where sample playback willstart and the position of locator 1120 b may indicate where sampleplayback will end. The user may adjust the positions of locators 1120 aand/or 1120 b by rotation of wheel 103. When locators 1120 a and/or 1120b are moved in certain embodiments, the waveform representation 1110that is between the two locators (e.g., the portion of the sample thatwill be assigned to a drum pad) may be displayed brighter than theportions of the waveform representation 1110 to the left of locator 1120a and/or to the right of locator 1020 b. Such visualization isillustrated as the exemplary display 1100 b in FIG. 11B. This may beachieved by dimming portions of waveform representation 1110 and/orhighlighting portions of waveform representation 1110. Such visualrepresentation of the selected portion of waveform representation 1110may provide a user with an additional indicator of which portion ofwaveform representation 1110 was selected (i.e., the portionhighlighted). This indication may be provided in addition to or insteadof the positions of locators 1120 a and 1120 b. Adjusting the positionsof locators 1120 a and 1120 b with a wheel rather than a computerkeyboard may be more convenient for a musician because standard computerkeyboard's layout may have relatively many buttons that are smallcompared to the size of the wheel. Adjusting the positions of locatorswith a wheel rather than a computer mouse may be more convenient for amusician because the standard computer mouse, which operates mostly invertical and horizontal motions, may offer little resistance toaccidental movement, whereas wheel 103 may have an internal resistancebuilt in (e.g., friction) such that rotating wheel 103 requires anapplication of enough force so that the chance of accidental rotation isreduced. Use of wheel 103 may facilitate faster and more intuitive useby musicians in high-energy performance settings that may, in somecircumstances, have poor lighting conditions. Wheel 103 may allow formore precise control of locator's 1120 a and/or 1120 b position and,therefore, more precise placement within the exemplary display 1100 bthan buttons allow because a button-press may generate an instruction tomove a locator by a fixed discrete amount when pressed, whereas wheel103 may allow for movement by any amount when rotated. This may, amongother things, permit faster movement of locators 1120 a and 1120 b tothe desired positions. It may be beneficial for a musician to use wheel103 to make these adjustments directly on module 100 instead of acomputer because, for example, module 100 may be manufactured with aninterface for connecting to one or more electronic-drum pads whereascomputers are typically manufactured without such interface. Allowing auser to have electronic-drum pads connected to the unit on which thedrum samples will be played, such as module 100, may allow the user toedit a recorded sample and start triggering it with the electronic-drumpads in less time and in fewer steps than if the user were required tofirst record and edit the sample on a computer and then transfer it tothe unit that will be connected to the electronic-drum pads.Facilitating the recording and editing of the sample on module 100instead of a on computer may decrease the number of devices needed by amusician, reducing transportation, storage, and capital-investmentexpenses in equipment. For example, module 100 may be a singleself-contained unit, whereas a computer system for recording and editingthe sample may comprise multiple units (e.g., computer case, displaymonitor, keyboard, mouse, and/or speakers). If a computer system forrecording and editing a sample is used, the sample may then need to betransferred to a module for, among other things, interfacing with theelectronic-drum pads, which may require two or more pieces of equipment(e.g., the computer system and the module), extra time, and,potentially, system resources to transfer the sample. In someembodiments. the start-time and stop-time may be set using one or moremethods other than adjusting the position location markers. For example,a user may enter the start and stop time using a keypad and/or select arange of time by scrolling wheel 103. In certain embodiments, recordedand/or edited samples may be stored on internal storage of module 100,such as an SD Card, flash memory, or RAM, and/or on external memory suchas a hard drive.

In certain embodiments, a user may overlay a tempo grid over a waveformrepresentation of a recorded sample. FIGS. 12A and 12B illustrateexemplary displays 1200 a and 1200 b, respectively, for overlaying atempo grid over a waveform representation 1202. The display make havegridlines indicating a temporal unit (e.g., a quarter note, an eighthnote, etc.), such as gridlines 1204 a and 1204 b overlaid over waveformrepresentation 1202. In certain embodiments, the position of a leftlocator 1206 may be used to set the location of the downbeat or anothertemporal location. In certain embodiments, module 100 may automaticallydetermine the tempo of the recorded sample and, therefore, the spacingbetween gridlines. This may be achieved using a tempo-detectionalgorithm. The user may edit the tempo and thereby change the spacingbetween gridlines 1204 a and 1204 b. The spacing between gridlines maybe changed in real-time as the tempo is changed (e.g., the spacing maybe changed every time a tempo control is actuated without requiringfurther interaction from a user). For example, at a certain tempo, thegridlines 1204 a and 1204 b in FIG. 12A may have a certain distancebetween them. If the user increases the tempo, gridlines 1204 a and 1204b and move closer together, as in FIG. 12B. This visualization maypermit a user to fine-tune the tempo based on the positions of gridlineswith respect to the waveform representation 1202, allowing for a visualindication of when the tempo is set correctly (e.g., when a subsequentquarter note's gridlines is overlaid over the beginning of bass-drumstrike's waveform). The tempo may be changed by, for example, rotatingwheel 103 of FIG. 1 and/or using another control. Once the gridlineshave been overlaid over waveform representation 1202, the gridlines mayfacilitate faster navigation to a particular section of the sampleand/or faster selection of a portion of the sample. For example, oncethe gridlines are overlaid, rotating wheel 103 may cause aplayback-location indicator such as exemplary playback-locationindicator 1208 to jump to the preceding or subsequent gridline ratherthan move a fixed number of ticks, milliseconds, etc. In certainembodiments, rotating wheel 103 changes which portion of the sample isselected. For example, if the gridlines are spaced with a quarter-notewidth, rotating wheel 103 may select the preceding or subsequentquarter-note-length region of the sample. In certain embodiments,rotating wheel 103 changes the position of locator 1206 and/or locator1210 by the temporal unit indicated by the gridline spacing (e.g., moveslocator 1206 and/or 1210 to the preceding or the next gridlines).Similar position adjustment may be performed on playback-locationindicator 1208. Other temporal units, such as an eighth-note, may beused. In certain embodiments, once a grid, such as a quarter-note grid,is created, a finer grid (e.g., a sixteenth-note grid) may be displayed.In certain embodiments, the region selected may be highlighted. Selectedregions may be saved, played, played in a looped manner, and/or assignedas samples to a drum pad. In some embodiments, one or more processor mayperform digital signal processing on the recorded sample (e.g.,time-compressing or stretching the recorded sample) while one or moreother processors handle other tasks (e.g., generating a waveform fordisplaying a time-compressed or stretched recorded sample waveform).

Module 100 may indicate to a user the relative force with which the userstrikes a drum zone. A user may wish to see such indication when, forexample, setting a trigger threshold (e.g., the minimum amount forcerequired for the module to play a sound) or a gain value (e.g.,decreasing or increasing the volume at which a sound will play whentriggered with a strike with a certain force) because it may assist themin visualizing how hard they are striking the drum pad. A user may alsowish to see such force indicator when practicing making strikes withequal force. An indication of a strike's force may be indicated ondisplay 101 with exemplary display 1300 as illustrated in FIG. 13.Display 1300 may show at least one available drum pad, such as asnare-drum pad 1310. When a user strikes a drum pad, such as a thirdtom-tom drum pad 1320 in a set of four tom-tom drum pads, the color ofthe displayed third tom-tom drum pad 1320 may change. The new color ofthe third tom-tom drum pad 1320 may correspond to the intensity withwhich it was struck. For example, in certain embodiments, the color ofthe third tom-tom drum pad 1320 may be blue when it is not being struck,red when it is struck with a maximum force the sensors may sense, andsome other color or colors when struck with some force between the twoaforementioned forces. One of the colors used for the third tom-tom drumpad 1320 may be, for example, a black color. In an embodiment, the colordisplayed when the drum pad is struck may be a different tint, tone, orshade of the color displayed when the drum pad is not struck. In anembodiment, the color displayed when the drum pad is struck may be adifferent hue than the color displayed when the drum pad is not struck.For example, the color of the drum pad may have a color gradient fromone color to another across the drum pad (e.g., from the center to theedge). In some embodiments, a certain portion of the drum displayed mayhave its color changed. For example, if the user strikes the center ornear the center of the drum pad, the displayed central section of thedrum pad may change color. If the user strikes the rim of a drum pad,the displayed rim of the drum pad may change color. Such method ofdisplaying drum-strike velocity information may be preferred to onlydisplaying a number whose value is associated with a velocity and/ordisplaying a bar whose height is associated with a velocity. This may beso because showing a visual representation of the object being struck aschanging colors may help create an association, subconscious orotherwise, in the mind of the user between the object and the strikevelocity, allowing for a more intuitive user experience interfacing withmodule 100 than without this association. For example, the fact that theuser is seeing the relevant information as a single object (e.g., thestruck drum-head changing colors) may provide a more intuitive userexperience than if the relevant information is distributed amongmultiple objects (e.g., an image or name of the struck drum-head as oneobject and a number or bar as a second object). In addition to helpingcreate an association between the pieces of information, the user may beaided by allowing fewer items to be displayed at a single time ondisplay 101 but still providing the relevant information. This may offerthe advantage of fewer distractions to the user from the relevantinformation or create room for displaying more types of information tothe user (e.g., information not related to the strike velocity of aparticular drum). The foregoing method of displaying a strike velocitymay be performed on module 100 and/or on a general-purpose computer.

An exemplary system for implementing module 100 is illustrated in FIG.14 as exemplary system 1400. The various components of system 1400 mayinclude an assembly of hardware, software, and/or firmware, includingone or more memory devices (e.g., SRAM 1402, DDR2 SDRAM 1404, SDRAM1406, SPI Flash 1408, SPI Flash 1410; SDRAM 1412; internal SD Card 1414;external SD Card 1416; internal memory on MCU 1418; internal memory onDSP CPU 1420; and/or internal memory on USB/MS CPU 1422) one or morecentral processing units (“CPU”) (e.g., MCU 1418; DSP CPU 1420; and/orUSB/MS CPU 1422), and/or one or more optional user interface units (“I/OUnits”) (e.g., faders 1424, rotary encoder/wheel 1428, and/or buttons1426). Memory devices may include any type of RAM or ROM embodied in aphysical storage medium, such as magnetic storage including floppy disk,hard disk, or magnetic tape; semiconductor storage such as solid statedisk (SSD) or flash memory; optical disc storage; or magneto-opticaldisc storage. The CPUs may include one or more processors for processingdata according to a set of programmable instructions or software storedin the memory devices. The functions of one or more processors may beprovided by a single dedicated processor or by a plurality of suchprocessors. Moreover, the one or more processors may include, withoutlimitation, digital signal processor (DSP) hardware, or any otherhardware capable of executing software. The optional user interfaceunits may comprise any type or combination of input/output devices, suchas a display monitor/color graphic LCD Panel 1430, keyboard, touchscreen, wheel, and/or mouse.

Certain embodiments of the present disclosure may be implemented assoftware on a general purpose computer.

FIG. 15 is an illustration of a display without a visualization of thevertical location of a high-hat pedal (e.g., how pressed or depressedthe high-hat pedal is). This may be in contrast to FIG. 16, which is anexemplary display of a high-hat pedal that may indicate the verticallocation of a high-hat pedal.

FIGS. 17-19 are exemplary views of module 100.

The foregoing description has been presented for purposes ofillustration. It is not exhaustive and is not limited to the preciseforms or embodiments disclosed. Modifications and adaptations will beapparent to those skilled in the art from consideration of thespecification and practice of the disclosed embodiments.

The features and advantages of the disclosure are apparent from thedetailed specification, and thus, it is intended that the appendedclaims cover all systems and methods falling within the true spirit andscope of the disclosure. As used herein, the indefinite articles “a” and“an” mean “one or more.” Similarly, the use of a plural term does notnecessarily denote a plurality unless it is unambiguous in the givencontext. Words such as “and” or “or” mean “and/or” unless specificallydirected otherwise. Further, since numerous modifications and variationswill readily occur from studying the present disclosure, it is notdesired to limit the disclosure to the exact construction and operationillustrated and described, and accordingly, all suitable modificationsand equivalents may be resorted to, falling within the scope of thedisclosure.

Computer programs, program modules, and code based on the writtendescription of this specification, such as those used by themicrocontrollers, are readily within the purview of a softwaredeveloper. The computer programs, program modules, or code can becreated using a variety of programming techniques. For example, they canbe designed in or by means of Java, C, C++, assembly language, or anysuch programming languages. One or more of such programs, modules, orcode can be integrated into a device system or existing communicationssoftware. The programs, modules, or code can also be implemented orreplicated as firmware or circuit logic.

Another aspect of the disclosure is directed to a non-transitorycomputer-readable medium storing instructions which, when executed,cause one or more processors to perform the methods of the disclosure.The computer-readable medium may include volatile or non-volatile,magnetic, semiconductor, tape, optical, removable, non-removable, orother types of computer-readable medium or computer-readable storagedevices. For example, the computer-readable medium may be the storageunit or the memory module having the computer instructions storedthereon, as disclosed. In some embodiments, the computer-readable mediummay be a disc or a flash drive having the computer instructions storedthereon.

Moreover, while illustrative embodiments have been described herein, thescope of any and all embodiments include equivalent elements,modifications, omissions, combinations (e.g., of aspects across variousembodiments), adaptations and/or alterations as would be appreciated bythose skilled in the art based on the present disclosure. Thelimitations in the claims are to be interpreted broadly based on thelanguage employed in the claims and not limited to examples described inthe present specification or during the prosecution of the application.The examples are to be construed as non-exclusive. Furthermore, thesteps of the disclosed methods may be modified in any manner, includingby reordering steps and/or inserting or deleting steps. It is intended,therefore, that the specification and examples be considered asillustrative only, with a true scope and spirit being indicated by thefollowing claims and their full scope of equivalents.

What is claimed is:
 1. An electronic-drum module for connection to oneor more sources of trigger signals, the electronic-drum modulecomprising: an electronic display; a memory storing one or more audiofiles for playback when the playback is triggered by a signal receivedfrom the one or more sources of trigger signals; and one or moreprocessors coupled to the electronic display and the memory, wherein atleast one of the one or more processors is configured to: play a portionof the one or more audio files when playback is triggered by a triggersignal received from the one or more sources of trigger signals;display, on the electronic display, (i) a user interface for anapplication, wherein the user interface for the application includes awaveform associated with recorded audio, and (ii) tempo gridlines overthe waveform, with a tempo-gridline spacing indicating a common temporalunit; and in response to an adjustment control signal, modify thetempo-gridline spacing between tempo gridlines, and redisplay themodified tempo gridlines over the waveform.
 2. The electronic-drummodule of claim 1, further comprising a control for adjusting thetempo-gridline spacing and wherein at least one of the one or moreprocessors is configured to generate, on the electronic display, amodified waveform in response to adjusting the tempo-gridline spacing.3. The electronic-drum module of claim 1, wherein the adjustment controlsignal defines a change in tempo of the tempo gridlines.
 4. Theelectronic-drum module of claim 2, wherein the control is a wheel andthe control is actuated by rotation of the wheel.
 5. The electronic-drummodule of claim 1, wherein at least one of the one or more processors isconfigured to receive a selection of a portion of the waveform.
 6. Theelectronic-drum module of claim 1, wherein the user interface for theapplication further includes a samplestart marker.
 7. Theelectronic-drum module of claim 1, wherein the digital signal processingcomprises time stretching of the recorded audio.
 8. The electronic-drummodule of claim 1, wherein at least one of the one or more processors isconfigured to automatically determine the tempo-gridline spacing.
 9. Theelectronic-drum module of claim 1, wherein at least one of the one ormore processors is configured to perform time-compressing on therecorded audio.
 10. A method of generating tempo gridlines on anelectronic drum module display, the method comprising: storing one ormore audio files for playback when the playback is triggered by atrigger signal received from one or more sources of trigger signals;playing a portion of the one or more audio files when the playback istriggered by the trigger signal received from the one or more sources oftrigger signals; displaying, on an electronic display, (i) a userinterface for an application, wherein the user interface for theapplication includes a waveform associated with recorded audio, and (ii)tempo gridlines over the waveform, with a tempo-gridline spacingindicating a common temporal unit; and in response to an adjustmentcontrol signal, modifying the tempo-gridline spacing between tempogridlines, and redisplaying the modified tempo gridlines over thewaveform.
 11. The method of claim 10, further comprising adjusting thetempo-gridline spacing as a control is actuated.
 12. The method of claim11, wherein the adjustment corresponds to a change in tempo.
 13. Themethod of claim 10, wherein the control is a wheel and the control isactuated by rotation of the wheel.
 14. The method of claim 10, whereinthe digital signal processing comprises time stretching of the recordedaudio.
 15. The method of claim 10, further comprising generating, on theelectronic display, a modified waveform in response to adjusting thetempo-gridline spacing.
 16. The method of claim 10, wherein the digitalsignal processing comprises time compression of the recorded audio. 17.The method of claim 10, further comprising automatically determining thetempo-gridline spacing.
 18. A system comprising at least one processorand a non-transitory computer-readable storage medium storinginstructions that, when executed by one or more of the at least oneprocessor, cause the one or more of the at least one processor toperform a method, the method comprising: storing one or more audio filesfor playback when the playback is triggered by a trigger signal receivedfrom one or more sources of trigger signals; playing a portion of theone or more audio files when the playback is triggered by the triggersignal received from the one or more sources of trigger signals;displaying, on an electronic display, (i) a user interface for anapplication, wherein the user interface for the application includes awaveform associated with recorded audio, and (ii) tempo gridlines overthe waveform, with a tempo-gridline spacing indicating a common temporalunit over the waveform; and in response to an adjustment control signal,modify the tempo-gridline spacing between tempo gridlines, and redisplaythe modified tempo gridlines over the waveform.
 19. The system of claim18, further comprising generating, on the electronic display, a modifiedwaveform in response to adjusting the tempo-gridline spacing.
 20. Thesystem of claim 18, wherein the adjustment corresponds to a change intempo.
 21. The system of claim 18, wherein the control is a wheel andthe control is actuated by rotation of the wheel.
 22. The system ofclaim 18, wherein the method further comprises receiving a selection ofa portion of the waveform.
 23. The system of claim 18, wherein thedigital signal processing comprises time stretching of the recordedaudio.
 24. The system of claim 23, wherein the method further comprisesdisplaying the tempo gridlines to the right of the sample-start marker.25. The system of claim 18, wherein the method further comprisesautomatically determining the tempo-gridline spacing.
 26. The system ofclaim 18, wherein the digital signal processing comprises timecompression of the recorded audio.